package com.ygqh.baby.service;

import com.ygqh.baby.ao.Message;
import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.model.UserMemberModel;
import com.ygqh.baby.model.VipCoupon;
import com.ygqh.baby.po.YgUser;
import com.ygqh.baby.po.YgUserMember;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

public interface YgUserMemberService {

	List<YgUserMember> find();

	int findCount();

	YgUserMember findById(Long id);

	int deleteSoft(Long[] ids);

	int deleteSoft(Long id);

	int save(YgUserMember ygUserMember);

	int update(YgUserMember ygUserMember);

	int saveOrUpdate(YgUserMember ygUserMember);

	ResultSet<YgUserMember> search(QueryInfo queryInfo, String q, String nickName);

	/**
	 * 只适用于老女王
	* @Title: isVip 
	*  @param userId
	*  @return    入参
	* @return Boolean    返回类型
	* @author （guohao） 
	* @throws
	* @date 2018年11月19日 上午11:59:10 
	* @version V1.0
	 */
	Boolean isVip(Long userId);

	BigDecimal getVipPrice();

	Map<String, BigDecimal> getMapVipPrice();

	VipCoupon getVipCoupon();

	YgUserMember findByUserId(Long userId);

	int becomeToMemberNotPay(String cardIds, YgUser user, Date birthday);

	@Deprecated
	int becomeToMember(Long userId, Date startTime, Date endTime, Date birthDay);
	
	int becomeToMember(Long userId, Date startTime, Date endTime,String sourCode);

	Message sendQueenCoupon(YgUser user);

	Message sendQueenCoupon(YgUser user, Long couponBatchId);

	ResultSet<YgUserMember> searchCountVip(QueryInfo queryInfo);

	void transferMember(YgUser sourceUser, YgUser targetUser);

	List<UserMemberModel> findUserByEndDate(Date minEndDate, Date maxEndDate);
}
